package eteam.aps.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import eteam.aps.model.entity.ProductInfo;
import eteam.aps.model.vo.ProductInfoListVo;
import eteam.aps.model.vo.ProductInfoVo;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;
import java.util.Map;

/**
 * 产品信息持久层
 *
 * @date 2022-12-14
 * @author WMT
 */
@Mapper
public interface ProductInfoMapper extends BaseMapper<ProductInfo> {

    /**
     * 逻辑删除产品信息，需要设置修改时间和修改人
     * @param equipInfo 产品信息数据
     * @return 受影响的行数
     */
    int deleteOne(ProductInfo equipInfo);

    /**
     * 根据fId物理删除字典
     * @param fId fId
     * @return 受影响的行数
     */
    int deleteByFId(String fId);

    /**
     * 修改产品信息
     * @param equipInfo 产品信息
     * @return 受影响的行数
     */
    int updateOne(ProductInfo equipInfo);

    /**
     * 统计产品名称的数量
     * @param equipName 产品名称
     * @return 数量
     */
    int selectCountByPeName(String equipName);

    /**
     * 统计产品编号的数量
     * @param equipCode 产品编号
     * @return 数量
     */
    int selectCountByPeCode(String equipCode);

    /**
     * 根据fId查询产品状态
     * @param fId fId
     * @return 状态
     */
    int selectFStateByFId(String fId);

    /**
     * 根据装备fId查询产品详情
     * @param fId fId
     * @return 产品详情
     */
    List<ProductInfoVo> selectDetails(String fId);

    /**
     * 根据产品fId查询产品信息
     * @param fId 产品fId
     * @return 产品信息
     */
    ProductInfo selectByFId(String fId);

    /**
     * 分页查询所有产品数据 --记录
     * @param map 查询参数， 分页参数
     * @return 产品列表
     */
    List<ProductInfoListVo> selectAll(Map<String, Object> map);

    /**
     * 分页查询所有产品信息 --总条数
     * @param map 分页条件
     * @return 总条数
     */
    int selectCountAll(Map<String, Object> map);

    /**
     * 根据产品分类fId统计该分类下的产品总数
     * @param fEcId 产品分类fId
     * @return 产品总数
     */
    int selectCountAllByFEcId(Map<String,Object> map);

    /**
     * 查询装备列表
     * @param fState 状态
     * @return 装备列表
     */
    List<ProductInfoVo> selectEquipList(Map<String,Object> map);
}
